在完成兒童任務管理平台的核心功能後,我又在 AI 的協作下,快速打造了「每週報告」:彙整任務完成率、活動紀錄與獎勵兌換等等;接著,我又想到的一個適合的常見功能"自動將報告寄送到家長信箱",以及方便使用者回饋意見的自動發信功能。以下是我在 Gmail → SendGrid → Resend 三階段之間的選擇、踩坑與轉換。
一開始我最先想到是不是可以直接用 Gmail 做發信,我讓 AI 針對「用 Gmail 自動發信」給出步驟。AI 給的指引相當精準:啟用兩步驟驗證、建立應用程式密碼、在 Firebase Functions 放入認證。就算沒有相關經驗,也能快速照做跑起來。
# 設定 Gmail 認證資訊
firebase functions:config:set gmail.user="your-email@gmail.com"
firebase functions:config:set gmail.password="your-app-password"
# 部署
firebase deploy --only functions
AI 的提醒:Gmail SMTP 可快速上線,但寄送額度有限、品牌感較弱,且較容易被歸為垃圾信。當專案規模與頻率提升,就會感到壓力。
AI 建議我用 SendGrid:可驗證自有網域、透過 API 寄信、提升送達率與專業度。當時我選它還有一個原因:每天 100 封免費額度 的方案(非常適合個人小專案起步)。AI 也把實作流程拆清楚:Cloudflare網域購買和設定 DNS(我的網域透過 Cloudflare 購買以及 Firebase 後台設定和部署)、建立 API Key、把金鑰放進 Functions。
# 設定 SendGrid API Key
firebase functions:config:set sendgrid.apikey="SG.xxxxxxxxxx"
# 部署
firebase deploy --only functions
import * as sgMail from '@sendgrid/mail';
const setupSendGrid = () => {
const apiKey = functions.config().sendgrid?.apikey;
if (apiKey) {
sgMail.setApiKey(apiKey);
return sgMail;
}
return null;
};
const sendEmailWithSendGrid = async (mailOptions: any) => {
const sg = setupSendGrid();
if (!sg) throw new Error('SendGrid not configured');
const msg = {
to: mailOptions.to,
from: mailOptions.from,
subject: mailOptions.subject,
text: mailOptions.text,
html: mailOptions.html,
};
await sg.send(msg);
};
現實撞牆:兩個月後,我帳戶無預警被停用,查詢後發現免費方案已變動,之後每月約需 20 美元。更慘的是:我本來都打算先付費避免功能壞掉太久(因使用者回饋才發現被停用了),結果就算要付費還得審核,等了 1–2 天都沒辦法用,信件功能直接停擺。這次卡關我再次求助 AI,請它找出替代方案。
AI 這次推薦了 Resend(不知道為什麼上次建議沒有...)。它對個人專案相當友好,每月 3000 封(或每天約 100 封) 的免費額度,也很符合我每週報告與互動郵件的需求;後台介面也很清爽、操作直覺,不像我當時使用 SendGrid 時那麼卡。
# 設定 Resend API Key
firebase functions:config:set resend.apikey="re_xxxxxxxxxx"
# 設定開發者郵箱
firebase functions:config:set email.developer="your-email@taskyventure.com"
# 部署設定
firebase deploy --only functions
轉換心得:因為程式邏輯大同小異,實務上幾乎「替換 API Key + 輕微調整」就完成遷移,AI 在關鍵步驟(DNS、金鑰、寄件資訊)都給了檢核清單,避免我漏設定。
(將sendgrid替換成resend其實非常快,後悔沒有在遇到sendgrid被停用時馬上重新找替代方案,導致信件功能停擺了幾天)
要讓家長能直接回信並維持品牌一致,AI 建議我把 Gmail 設定為以自訂網域寄信(直接在Gmail設定頁面中簡單設定即可,例如 support@taskyventure.com
)。這樣寄件地址看起來更專業、回覆也能進到我設定的信箱;配合 Resend 作為寄送 API,就同時兼顧送達率與信箱使用習慣。
服務 | 我在專案中的感受 | 優點 | 可能限制 |
---|---|---|---|
Gmail SMTP | 快速上線、少量寄送 OK | 設定簡單、無需新服務 | 容易進垃圾信、品牌感較弱 |
SendGrid | 初期表現不錯,但免費方案變動與審核卡關 | 專業網域、API 完整、成熟生態 | 後台卡頓、付費審核流程要提前注意 |
Resend | 最終選擇,轉換成本低 | 介面簡潔、對個人專案友善、額度符合需求 | 生態系相對新 |
AI 不是取代我,而是讓我像「一人小團隊」——我把精力放在體驗與內容,基礎設施與細節交給 AI 帶我一步步完成。
對我來說,這不只是把信寄出去,而是把「每週報告 → 郵件 → 回饋」串成一條完整、清晰的產品脈絡。AI 的角色,就是讓這條路變短、變穩、變專業。只要問題夠清楚,AI 就能把步驟、工具、風險與替代方案排好隊,讓你專心把價值交付給用戶。
敬請期待下一篇《從網頁到 App:AI 幫我重塑兒童任務管理平台體驗》